#ifndef FIDDLE_MANAGER_HPP
#define FIDDLE_MANAGER_HPP

#include <map>
#include <string>

template<typename T>
class Manager
{
private:
	Manager();
	Manager( const Manager<T>& other );

	typedef std::map<std::string, T> MapType;
	MapType objects;

public:
	bool exists( const std::string& name )
	{
		return objects.find( name ) != objects.end(); 
	}

	T* get( const std::string& name )
	{
		
	}
	
	///Must be over ridden for each manager sub class. The 
	///Function should return a new T pointer based on the name.
	///This is only called when the resource is originally created
	T* createNewObject( const std::string& name ) = 0;
};


#endif
